package com.example.demo.utils;

import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;


/**
 * <p>Title: DateUtil.java</p>  
 * <p>Description: 日期工具类</p>  
 * @author tymac
 * @date 2017年12月22日
 */
public class DateUtil {

	/**
	 * @return 将当前时间格式化
	 */
    public static final String FORMAT_0 = "yyyy-MM-dd HH:mm:ss";
	
	public static final String FORMAT_1 = "yyyy-MM-dd";
	
	public static final String FORMAT_2 = "HH:mm:ss";
	
	public static final String FORMAT_3 = "HH时";
	
	public static final String FORMAT_4 = "yyyyMMdd";
	
	public static String getDateyyyyMMdd() {
		SimpleDateFormat ft = new SimpleDateFormat(FORMAT_4);
		Date dd = new Date();
		return ft.format(dd);
	}
	
	public static String getDate(Date d,String format){
		SimpleDateFormat ft = new SimpleDateFormat(format);
		return ft.format(d);
	}
	
	/**
	 * 计算日期差
	 * @param time1
	 * @param time2
	 * @return
	 */
	public static BigDecimal getdiffTimes(String time1, String time2) {
		BigDecimal quot = new BigDecimal(0);
		SimpleDateFormat ft = new SimpleDateFormat("yyyyMMddHHmm");
		SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmm");
		try {
			Date date1 = ft.parse(time1);
			Date date2 = new Date();
			String s = "";
			if(time2.indexOf("-") > 0){
				date2 = ft.parse(time2);
				s = ft.format(date2);
				date2 = ft.parse(s);
			}else{
				date2 = df.parse(time2);
				s = ft.format(date2);
				date2 = ft.parse(s);
			}
			quot = new BigDecimal(date1.getTime() - date2.getTime());
			quot = quot
					.divide(new BigDecimal(1000), 2, BigDecimal.ROUND_HALF_UP)
					.divide(new BigDecimal(60), 2, BigDecimal.ROUND_HALF_UP)
					.divide(new BigDecimal(60), 1, BigDecimal.ROUND_HALF_UP);
		} catch (ParseException e) {
			e.printStackTrace();
		}
		return quot;
	}
//	
//	public static String getDate() {
//		SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd");
//		Date dd = new Date();
//		return ft.format(dd);
//	}
	public static String dateOfString(Date d,String format) {
		SimpleDateFormat ft = new SimpleDateFormat(format);
		return ft.format(d);
	}
//	
//	/**
//	 * <p>Title: getDate</p>
//	 * <p>Description: 格式化时间</p>
//	 * @param d
//	 * @return
//	 * @author 崔宁  2013-10-16 上午09:32:02
//	 */
//	public static String getDate(Date d){
//		SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd");
//		return ft.format(d);
//	}
//	public static String getDateforhms(Date d){
//		SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//		return ft.format(d);
//	}
//	
//	/**
//	 * <p>Title: getDate</p>
//	 * <p>Description: 格式化时间</p>
//	 * @param d
//	 * @param format
//	 * @return
//	 * @author 汤志福 
//	 */
//	public static String getDate(Date d,String format){
//		SimpleDateFormat ft = new SimpleDateFormat(format);
//		return ft.format(d);
//	}
//	
//	
//	
//	/**
//	 * 取整时
//	 */
//	public static String getHour(Date d){
//		SimpleDateFormat sft = new SimpleDateFormat(FORMAT_3);
//		return sft.format(d);
//	}
//	/**
//	 * 得到几天前的时间
//	 * @param d
//	 * @param day
//	 * @return
//	 */
//	public static Date getDateBefore(Date d, int day) {
//		Calendar now = Calendar.getInstance();
//		now.setTime(d);
//		now.set(Calendar.DATE, now.get(Calendar.DATE) - day);
//		return now.getTime();
//	}
//
//	public static Date getDateBefores(Date d, int day) {
//		Calendar now = Calendar.getInstance();
//		now.setTime(d);
//		now.set(Calendar.DATE, now.get(Calendar.DATE) + day);
//		return now.getTime();
//	}
//	/**
//	 * @param time1
//	 * @param time2
//	 * @return 计算两个日期间相差天数
//	 */
//	public static long getQuot(String time1, String time2) {
//		long quot = 0;
//		SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd");
//		try {
//			Date date1 = ft.parse(time1);
//			Date date2 = ft.parse(time2);
//			quot = Math.abs(date1.getTime() - date2.getTime());
//			quot = quot / 1000 / 60 / 60 / 24;
//		} catch (ParseException e) {
//			e.printStackTrace();
//		}
//		return quot;
//	}
//	
//	
//	/**
//	 * @param time1
//	 * @param time2
//	 * @return 计算两个日期间相差天数
//	 */
//	public static long getQuotDay(String time1, String time2) {
//		long quot = 0;
//		SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//		try {
//			Date date1 = ft.parse(time1);
//			Date date2 = ft.parse(time2);
//			quot = Math.abs(date1.getTime() - date2.getTime());
//			quot = quot / 1000 / 60 / 60 / 24;
//		} catch (ParseException e) {
//			e.printStackTrace();
//		}
//		return quot;
//	}
//	
//	/**
//	 * <p>Title: getQuot</p>
//	 * <p>Description: 计算两个日期间相差小时，精确小数点后一位，不取绝对值</p>
//	 * @param time1
//	 * @param time2
//	 * @return
//	 * @author 崔宁  2013-12-2 下午04:33:13
//	 */
//	public static BigDecimal getPoorTimes(String time1, String time2) {
//		BigDecimal quot = new BigDecimal(0);
//		SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd");
//		SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmm");
//		try {
//			Date date1 = ft.parse(time1);
//			Date date2 = new Date();
//			String s = "";
//			if(time2.indexOf("-") > 0){
//				date2 = ft.parse(time2);
//				s = ft.format(date2);
//				date2 = ft.parse(s);
//			}else{
//				date2 = df.parse(time2);
//				s = ft.format(date2);
//				date2 = ft.parse(s);
//			}
//			quot = new BigDecimal(date1.getTime() - date2.getTime());
//			quot = quot
//					.divide(new BigDecimal(1000), 2, BigDecimal.ROUND_HALF_UP)
//					.divide(new BigDecimal(60), 2, BigDecimal.ROUND_HALF_UP)
//					.divide(new BigDecimal(60), 1, BigDecimal.ROUND_HALF_UP);
//		} catch (ParseException e) {
//			e.printStackTrace();
//		}
//		return quot;
//	}
//	
//	/**
//	 * <p>Title: formatToChinese</p>
//	 * <p>Description: 将YYYY-MM-DD格式转化为YYYY年MM月DD日</p>
//	 * @param date YYYY-MM-DD格式的日期
//	 * @return YYYY年MM月DD日格式的日期
//	 * @author 崔宁  2012-7-30 下午02:58:22
//	 */
//	public static String formatToChinese(String date) {
//		String[] dates = date.split("-");
//		String newDate = dates[0] + "年" + dates[1] + "月" + dates[2] + "日";
//		return newDate;
//	}
//	
//	/**
//	 * <p>Title: formatToChinese</p>
//	 * <p>Description: 将YYYY-MM-DD格式转化为YYYY/MM/DD</p>
//	 * @param date YYYY-MM-DD格式的日期
//	 * @return YYYY/MM/DD格式的日期
//	 * @author 崔宁  2012-7-30 下午02:58:22
//	 */
//	public static String formatToEnglish(String date) {
//		String[] dates = date.split("-");
//		String newDate = dates[0] + "/" + dates[1] + "/" + dates[2];
//		return newDate;
//	}
//
//	// 转化身份证日期格式
//	public static Date formatCardDate(String id) {
//		int year = Integer.parseInt(id.substring(6, 10));
//		String birthday = String.valueOf(year + 18) + "-"+ id.substring(10, 12) + "-" + id.substring(12, 14);
//		try {
//			SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd");
//			return ft.parse(birthday);
//		} catch (ParseException e) {
//			e.printStackTrace();
//		}
//		return null;
//	}
//	
//	//计算相差年
//	public static String difDate(Date startdate, Date enddate) {
//		Calendar start = Calendar.getInstance();
//        start.setTime(startdate);
//
//        Calendar end = Calendar.getInstance();
//        end.setTime(enddate);
//		
//		long temp = start.getTimeInMillis() - end.getTimeInMillis();
//		long dayMillis=86400000;
//        return String.valueOf(Math.ceil((temp / dayMillis)/365.0));
//    }
//	
//	public static Date getDate(String s) {
//		try {
//			SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd");
//			return ft.parse(s);
//		} catch (ParseException e) {
//			e.printStackTrace();
//		}
//		return null;
//	}
//	
//	/**
//	 * <p>Title: getMonths</p>
//	 * <p>Description: 计算两个日期之间相差的月数</p>
//	 * @param dateString1
//	 * @param dateString2
//	 * @return
//	 * @author 崔宁  2012-11-23 上午09:36:13
//	 */
//	public static int getMonths(String dateString1, String dateString2) {
//		int iMonth = 0;
//		int flag = 0;
//		try {
//			Calendar objCalendarDate1 = Calendar.getInstance();
//			objCalendarDate1.setTime(getDate(dateString1));
//
//			Calendar objCalendarDate2 = Calendar.getInstance();
//			objCalendarDate2.setTime(getDate(dateString2));
//
//			if (objCalendarDate2.equals(objCalendarDate1))
//				return 0;
//			if (objCalendarDate1.after(objCalendarDate2)) {
//				Calendar temp = objCalendarDate1;
//				objCalendarDate1 = objCalendarDate2;
//				objCalendarDate2 = temp;
//			}
//			if (objCalendarDate2.get(Calendar.DAY_OF_MONTH) < objCalendarDate1
//					.get(Calendar.DAY_OF_MONTH))
//				flag = -1;
//			else 
//				flag = 1;
//			if (objCalendarDate2.get(Calendar.YEAR) > objCalendarDate1
//					.get(Calendar.YEAR))
//				iMonth = ((objCalendarDate2.get(Calendar.YEAR) - objCalendarDate1
//						.get(Calendar.YEAR))
//						* 12
//						+ objCalendarDate2.get(Calendar.MONTH) + flag)
//						- objCalendarDate1.get(Calendar.MONTH);
//			else
//				iMonth = objCalendarDate2.get(Calendar.MONTH)
//						- objCalendarDate1.get(Calendar.MONTH) + flag;
//
//		} catch (Exception e) {
//			e.printStackTrace();
//		}
//		return iMonth;
//	}
//	
//	public static boolean isDate(String date){
//		if(date==null||date.indexOf("-")<0||date.split("-").length!=3){
//			return false;
//		}
//		String yyyy="";
//		String mm="";
//		String dd="";
//		yyyy=date.split("-")[0];
//		mm=date.split("-")[1];
//		dd=date.split("-")[2];
//		if(!(isDigit(yyyy)&&isDigit(mm)&&isDigit(dd))){
//			return false;
//		}
//		
//		Integer syyyy=new Integer(yyyy);
//		Integer smm=new Integer(mm);
//		Integer sdd=new Integer(dd);
//		
//		if((syyyy+"").length()!=4){
//			return false;
//		}else if(smm>12||smm<1){
//			return false;
//		}else if(smm==1||smm==3||smm==5||smm==7||smm==8||smm==10||smm==12){
//			if(sdd<1||sdd>31){
//				return false;
//			}
//		}else if(smm==4||smm==6||smm==9||smm==11){
//			if(sdd<1||sdd>30){
//				return false;
//			}
//		}else{
//			if((syyyy%4==0 && syyyy%100!=0)||(syyyy%100==0 && syyyy%400==0)){
//				if(sdd<1||sdd>29){
//					return false;
//				}
//			}else{
//				if(sdd<1||sdd>28){
//					return false;
//				}
//			}
//		}
//		
//		DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//		try{
//			Date d=sdf.parse(yyyy+"-"+StringUtils.leftPad(mm,2,'0')+"-"+StringUtils.leftPad(dd,2,'0'));
//			return date.equals(sdf.format(d));
//		}catch(Exception e){
//			return false;
//		}
//		
//	}
//	
//	public static boolean isDigit(String strNum) {
//		return strNum.matches("[0-9]{1,}");
//	}
//	
//	public static boolean isAge(String birthDay,int minAge,int maxAge) throws Exception {
//		DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//		Calendar calNow = Calendar.getInstance();
//		int yearNow = calNow.get(Calendar.YEAR);
//		int monthNow = calNow.get(Calendar.MONTH)+1;
//		int dayOfMonthNow = calNow.get(Calendar.DAY_OF_MONTH)+1;
//		
//		//Calendar cal = Calendar.getInstance();
//		//cal.setTime(birthDay);
//		
//		Date maxDate=sdf.parse((yearNow-minAge)+"-"+monthNow+"-"+dayOfMonthNow);
//		Date minDate=sdf.parse((yearNow-maxAge)+"-"+monthNow+"-"+dayOfMonthNow);
//		if(sdf.parse(birthDay).after(minDate)&&sdf.parse(birthDay).before(maxDate)){
//			return true;
//		}
//		return false;
//	}
//	
//
//	
//	/**
//	 * 根据字符串格式去转换相应格式的日期和时间
//	 * 
//	 * @param java.lang.String 必要参数
//	 * @return java.util.Date
//	 * @exception java.text.ParseException
//	 *                如果参数格式不正确会抛出此异常
//	 * **/
//	public static Date reverse2Date(String date) {
//		if(StringUtils.isBlank(date)){
//			return null;
//		}
//		SimpleDateFormat simple = null;
//		switch (date.trim().length()) {
//		case 19:// 日期+时间
//			simple = new SimpleDateFormat(FORMAT_0);
//			break;
//		case 10:// 仅日期
//			simple = new SimpleDateFormat(FORMAT_1);
//			break;
//		case 8:// 仅时间
//			simple = new SimpleDateFormat(FORMAT_2);
//			break;
//		default:
//			break;
//		}
//		try {
//			return simple.parse(date.trim());
//		} catch (ParseException e) {
//			e.printStackTrace();
//		}
//		return null;
//	}
//	
//	public static String dateToStringTime(String date){
//		String returnVal = "";
//		if("".equals(date)){
//			return returnVal;
//		}
//		return date.substring(0,4) + "-" + date.substring(4,6) + "-" + date.substring(6,8)+" "+date.substring(8,10)+":"+date.substring(10,12)+":00";
//	}
//	
//	//**************************************************************************
//	/**
//	 * TODO 方法stringToDate的简要说明 <br><pre>
//	 * 方法stringToDate的详细说明 <br>
//	 * 创建时间：2013-1-15 下午07:52:01 </pre>
//	 * @param 参数类型 参数名 说明
//	 * @return Date 说明
//	 * @throws 异常类型 说明
//	 */
//	//**************************************************************************
//	public static Date stringToDate(String date, String format) {
//		if(StringUtils.isNotBlank(date)){
//			SimpleDateFormat sf = new SimpleDateFormat(format);
//			try {
//				return sf.parse(date);
//			} catch (ParseException e) {
//				e.printStackTrace();
//			}
//		}
//		return null;
//	}
//	
//	/**
//	 * TODO 方法dateToString的简要说明 <br><pre>
//	 * 方法dateToString的详细说明 <br>
//	 * 创建时间：2013-1-15 下午07:51:55 </pre>
//	 * @param 参数类型 参数名 说明
//	 * @return String 说明
//	 * @throws 异常类型 说明
//	 */
//	//**************************************************************************
//	public static String dateToString(Date date, String format) {
//		SimpleDateFormat sf = new SimpleDateFormat(format);
//		return date == null ? "" : sf.format(date);
//	}
//	
//	
//	/**
//	 * 
//	 * 根据给定日期获取年龄 （精确到日）
//	 * @return 年龄
//	 * @throws ParseException 
//	 */
//
//	public static int getAgeByParamDate(String paramDate, Date date){
//		int iAge = 0;
//		SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
//		
//		String year = paramDate.substring(0, 4);  
//		
//		Calendar cal = Calendar.getInstance();
//		cal.setTime(date);
//		int iCurrYear = cal.get(Calendar.YEAR);   
//		 
//		Calendar birth = Calendar.getInstance();
//		
//		try {
//			birth.setTime(format.parse(paramDate.replace("-", "")));
//		} catch (ParseException e) {
//			
//			e.printStackTrace();
//		}		
//		birth.set(Calendar.YEAR, iCurrYear);
//				
//		if(birth.after(cal)){
//			iAge = iCurrYear - Integer.valueOf(year) - 1;
//		}else{
//			iAge = iCurrYear - Integer.valueOf(year);
//		}
//		
//		return iAge;
//
//	}
//	/**
//	 * 计算日期差
//	 * @param time1
//	 * @param time2
//	 * @return
//	 */
//	public static BigDecimal getdiffTimes(String time1, String time2) {
//		BigDecimal quot = new BigDecimal(0);
//		SimpleDateFormat ft = new SimpleDateFormat("yyyyMMddHHmm");
//		SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmm");
//		try {
//			Date date1 = ft.parse(time1);
//			Date date2 = new Date();
//			String s = "";
//			if(time2.indexOf("-") > 0){
//				date2 = ft.parse(time2);
//				s = ft.format(date2);
//				date2 = ft.parse(s);
//			}else{
//				date2 = df.parse(time2);
//				s = ft.format(date2);
//				date2 = ft.parse(s);
//			}
//			quot = new BigDecimal(date1.getTime() - date2.getTime());
//			quot = quot
//					.divide(new BigDecimal(1000), 2, BigDecimal.ROUND_HALF_UP)
//					.divide(new BigDecimal(60), 2, BigDecimal.ROUND_HALF_UP)
//					.divide(new BigDecimal(60), 1, BigDecimal.ROUND_HALF_UP);
//		} catch (ParseException e) {
//			e.printStackTrace();
//		}
//		return quot;
//	}
////	计算相差年数
//	public static double getYears(Date startdate, Date enddate) {
//		Calendar start = Calendar.getInstance();
//        start.setTime(startdate);
//
//        Calendar end = Calendar.getInstance();
//        end.setTime(enddate);
//		
//		long temp = end.getTimeInMillis() - start.getTimeInMillis();
//		long dayMillis=86400000;
//		double years = (temp / dayMillis)/365.0;
//		return years;
//    }
//	
//	//计算两个时间相差的月份
//	public static int getMonthDiff(final String startDate, final String endDate) {
//		int startYear = Integer.parseInt(startDate.substring(0,4));
//		int startMonth = Integer.parseInt(startDate.substring(5,7));
//		int startDay = Integer.parseInt(startDate.substring(8,10));
//		int endYear = Integer.parseInt(endDate.substring(0,4));
//		int endMonth = Integer.parseInt(endDate.substring(5,7));
//		int endDay = Integer.parseInt(endDate.substring(8,10));
//		int monthDiff = (endYear - startYear) * 12 + endMonth - startMonth;
//		if(endDay>startDay){
//			monthDiff++;
//		}
//		return monthDiff;
//	}
//	//计算两个时间相差的月份（九个月）
//		public static int getMonth(final String startDate, final String endDate) {
//			int startYear = Integer.parseInt(startDate.substring(0,4));
//			int startMonth = Integer.parseInt(startDate.substring(5,7));
//			int startDay = Integer.parseInt(startDate.substring(8,10));
//			int endYear = Integer.parseInt(endDate.substring(0,4));
//			int endMonth = Integer.parseInt(endDate.substring(5,7));
//			int endDay = Integer.parseInt(endDate.substring(8,10));
//			int monthDiff = (endYear - startYear) * 12 + endMonth - startMonth;
//			if(endDay<startDay){
//				monthDiff--;
//			}
//			return monthDiff;
//		}
//	public static int getYearDiff(final String startDate, final String endDate) {
//		int startYear = Integer.parseInt(startDate.substring(0,4));
//		int startMonth = Integer.parseInt(startDate.substring(5,7));
//		int startDay = Integer.parseInt(startDate.substring(8,10));
//		int endYear = Integer.parseInt(endDate.substring(0,4));
//		int endMonth = Integer.parseInt(endDate.substring(5,7));
//		int endDay = Integer.parseInt(endDate.substring(8,10));
//		int monthDiff = (endYear - startYear) * 12 + endMonth - startMonth;
//		if(endDay>startDay){
//			monthDiff++;
//		}else if(endDay<startDay){
//			monthDiff--;
//		}
//		return monthDiff;
//	}
//	public static int getYearDiff1(final String startDate, final String endDate) {
//		int startYear = Integer.parseInt(startDate.substring(0,4));
//		int startMonth = Integer.parseInt(startDate.substring(5,7));
//		int startDay = Integer.parseInt(startDate.substring(8,10));
//		int endYear = Integer.parseInt(endDate.substring(0,4));
//		int endMonth = Integer.parseInt(endDate.substring(5,7));
//		int endDay = Integer.parseInt(endDate.substring(8,10));
//		int monthDiff = (endYear - startYear) * 12 + endMonth - startMonth;
//		if(endDay<startDay){
//			monthDiff--;
//		}
//		return monthDiff;
//	}
//	/**
//	 * 计算有效缴费日期
//	 */
//	public static String validPayperiod(String endDate){
//		SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//		String payEndDate="";
//		String startdate=getDateforhms(new Date());
//		long day=getQuotDay(startdate, endDate);
//		if(day>=10){
//			Date date=getDateBefores(reverse2Date(startdate), 10);
//			payEndDate=dateFormat.format(date);
//		}else{
//			Calendar cal=Calendar.getInstance();
//			cal.setTime(reverse2Date(endDate));
//			cal.add(Calendar.HOUR,-1);
////			String str=cal.get(Calendar.YEAR)+"-"
////			+(cal.get(Calendar.MONTH)+1)+"-"
////			+cal.get(Calendar.DATE)+" "
////			+cal.get(Calendar.HOUR)+":"
////			+cal.get(Calendar.MINUTE)+":"
////			+cal.get(Calendar.SECOND);
//			Date date=cal.getTime();
//			payEndDate=dateFormat.format(date);
//		}
//		return payEndDate;
//	}
//	
//	/**
//	 * 根据是否为即时起保计算缴费截止日期
//	 * 起保日期startDate - 签单日期issueDate <10天： 如果起保日期是当天，即即时生效标志EffectFlag = 1 ：   缴费截止日期 = 保险起保日期
//	 * 起保日期startDate - 签单日期issueDate <10天： 如果起保日期不是当天： 缴费截止日期 =  保险起保日期 - 1天
//	 * 不满足 起保日期startDate - 签单日期issueDate <10天： 缴费截止日期 = 签单日期 + 10天
//	 * @param flag 即时起保标志位 1为即时起保
//	 * @param startDate 保险起期
//	 * @return payEndDate 缴费截止日期
//	 */
//	public static String validPayperiodByFlag(String flag, Date startDate) {
//		String payEndDate = "";
//		// 保险起期
//		String start_date = getDateforhms(startDate);
//		// 签单日期为当天带时分秒
//		String issueDate = getDateforhms(new Date());
//		// 签单日期为当天不带时分秒
//		String issue_date = getDate(new Date());
//		long day = getQuotDay(start_date, issueDate);
//		if (flag.equals("1") && day < 9) {
//			payEndDate = start_date;
//			return payEndDate;
//		} else if (!flag.equals("1") && day <= 9) {
//			payEndDate = start_date;
//			return payEndDate;
//		} else if (day > 9) {
//			payEndDate = getDateforhms(getDateBefores(reverse2Date(issue_date),11));
//			return payEndDate;
//		}
//		return payEndDate;
//	}
//	
//	public static XMLGregorianCalendar dateToXmlDate(Date date) {
//		if(date==null)
//			date = new Date();
//		Calendar cal = Calendar.getInstance();
//		cal.setTime(date);
//		DatatypeFactory dtf = null;
//		try {
//			dtf = DatatypeFactory.newInstance();
//		} catch (DatatypeConfigurationException e) {
//		}
//		XMLGregorianCalendar dateType = dtf.newXMLGregorianCalendar();
//		dateType.setYear(cal.get(Calendar.YEAR));
//		// 由于Calendar.MONTH取值范围为0~11,需要加1
//		dateType.setMonth(cal.get(Calendar.MONTH) + 1);
//		dateType.setDay(cal.get(Calendar.DAY_OF_MONTH));
//		dateType.setHour(cal.get(Calendar.HOUR_OF_DAY));
//		dateType.setMinute(cal.get(Calendar.MINUTE));
//		dateType.setSecond(cal.get(Calendar.SECOND));
//		return dateType;
//	}
	
}




